A non-volatile semiconductor memory may be employed as mass storage for a computer system (e.g., desktop, laptop, portable, etc.) or a consumer device (e.g., music player, cell phone, camera, etc.) or other suitable application. The non-volatile semiconductor memory may comprise one or more memory devices (such as a flash memory) and control circuitry for accessing each memory device. Each memory device is coupled to an I/O bus, as well as a number of interface control lines. When issuing a program command or an erase command to a memory device, the control circuitry transfers the address and command data (and write data for a program operation) over the I/O bus. When issuing a read command, the control circuitry transfers the address and command data over the I/O bus and then receives the read data over the I/O bus.
Although flash memory is non-volatile (retains data when power is removed), the charge on the floating gate of each storage cell will eventually degrade over time until the retention capability is lost. In addition, the retention degradation may be precipitated by environmental conditions (e.g., temperature), as well as interference when accessing adjacent or near adjacent cells. For example, a phenomena referred to as “read disturb” occurs when a read operation interferes with the charge of adjacent cells. To prevent catastrophic data loss, the storage cells are periodically refreshed (by reading and rewriting the data) after a predetermined interval and/or after a number of access operations to adjacent cells. However, rewriting the storage cells during a refresh operation takes time which degrades overall performance of the memory device, and it consumes power which may be a concern in portable applications. In addition, a non-volatile semiconductor memory typically has a limited number of erase/program cycles. If the storage cells must first be erased before being rewritten during a refresh operation, each refresh operation decreases the remaining number of erase/program cycles.